type
status
date
slug
summary
tags
category
icon
password
一.单选题(total35 questions,100.0mark)
1
【Single Choice】阅读下面程序,则执行后的结果为( ).main( ){ int m=4,n=2,k; k=fun(m,n); printf("%d\n",k);}fun(int m,int n){ return(m*m*m-n*n*n);}
• A、64
• B、8
• C、56
• D、0
My Answer:C:56;
2
【Single Choice】以下程序的运行结果是( ).fun(int i,int j) { i++; j++; return i+j; }main( ) { int a=1,b=2,c=3; c+=fun(a,b)+a; printf("%d,%d,%d\n",a,b,c); }
• A、1,2,9
• B、2,3,10
• C、1,2,10
• D、2,3,9
My Answer:A:1,2,9;
3
【Single Choice】以下程序的输出结果是( ).int f( ){ static int i=0; int s=1; s+=i; i++; return s; }main( ){ int i,a=0; for(i=0;i<5;i++)a+=f( ); printf("%d\n",a); }
• A、20
• B、24
• C、25
• D、15
My Answer:D:15;
4
【Single Choice】以下只有在使用时才为该类型变量分配内存的存储类说明是( ).
• A、auto和 static
• B、auto和 register
• C、register和 static
• D、extern和 register
My Answer:B:auto和 register;
5
【Single Choice】C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是().
• A、地址传递
• B、单向值传递
• C、由实参传给形参,再由形参传回给实参
• D、由用户指定的传递方式
My Answer:B:单向值传递;
6
【Single Choice】请阅读以下程序:void fun(int s[]){ static int j=0; do {s[j]+=s[j+1];}while(++j<2); }main( ){ int k,a[10]={1,2,3,4,5}; for(k=1;k<3;k++) fun(a); for(k=0;k<5;k++) printf("%d",a[k]); }上面程序的输出是( ).
• A、34756
• B、23445
• C、35745
• D、12345
My Answer:C:35745;
7
【Single Choice】以下函数的类型是( ). fff( float x) { printf("%d\n", x+x); }
• A、与参数x的类型相同
• B、void 类型
• C、int类型
• D、无法确定
My Answer:C:int类型;
8
【Single Choice】有以下程序:void fun(int a,int b,int c){ a=456,b=567,c=678;}main( ){ int x=10,y=20,z=30; fun(x,y,z); printf("%d,%d,%d\n",x,y,z); }输出结果是( ).
• A、30,20,10
• B、10,20,30
• C、456,567,678
• D、678,567,456
My Answer:A:30,20,10;
9
【Single Choice】以下对C语言函数的有关描述中,正确的是( ).
• A、调用函数时,只能把实参的值传给形参,形参的值不能传送给实参
• B、函数既可以嵌套定义又可以递归调用
• C、函数必须有返回值,否则不能使用函数
• D、函数必须有返回值,返回值类型不定
My Answer:B:函数既可以嵌套定义又可以递归调用;
10
【Single Choice】若用数组名作为函数的实参,传递给形参的是( ).
• A、数组的首地址
• B、数组第一个元素的值
• C、数组中全部元素的值
• D、数组元素的个数
My Answer:A:数组的首地址;
11
【Single Choice】以下程序中函数f的功能是:当flag为1时,进行由小到大排序;当flag为0时,进行由大到小排序.void f(int b[],int n,int flag){ int i,j,t; for(i=0;i<n-1;i++) for(j=i+1;j<n;j++) if(flag?b[i]>b[j]:b[i]<b[j]){t=b[i];b[i]=b[j];b[j]=t;}}main( ){ int a[10]={5,4,3,2,1,6,7,8,9,10},i; f(&a[2],5,0); f(a,5,1); for(i=0;i<10;i++) printf("%d,",a[i]);}程序运行后的输出结果是( ).
• A、1,2,3,4,5,6,7,8,9,10,
• B、3,4,5,6,7,2,1,8,9,10,
• C、5,4,3,2,1,6,7,8,9,10,
• D、10,9,8,7,6,5,4,3,2,1,
My Answer:B:3,4,5,6,7,2,1,8,9,10,;
12
【Single Choice】设函数fun的定义形式为void fun(char ch,float x){…}则以下对函数fun的调用语句中,正确的是( ).
• A、fun("abc",3.0);
• B、t=fun('D',16.5);
• C、fun('65',2.8);
• D、fun(32,32);
My Answer:D:fun(32,32);;
13
【Single Choice】关于建立函数的目的,以下正确的说法是( ).
• A、提高程序的执行效率
• B、提高程序的可读性
• C、减少程序的篇幅
• D、减少程序文件所占内存
My Answer:B:提高程序的可读性;
14
【Single Choice】C语言规定,函数返回值的类型是由().
• A、return语句中的表达式类型所决定
• B、调用该函数时的主调函数类型所决定
• C、调用该函数时系统临时决定
• D、在定义该函数时所指定的函数类型所决定
My Answer:D:在定义该函数时所指定的函数类型所决定;
15
【Single Choice】有以下程序#include "string.h"void f(char p[][10],int n) /*字符串从小到大排序*/{ char t[10]; int i,j; for (i=0;i<n-1; i++) for (j=i+l; j<n; j++) if(strcmp(p[i], p[j])>0) {strcpy(t, p[i]); strcpy(p[i], p[j]); strcpy(p[j], t); }}main( ){ char p[5][10]={"abc", "aabdfg", "abbd", "dcdbe", "cd"}; f(p,5); printf("%d\n", strlen(p[0])); }程序运行后的输出结果是( ).
• A、2
• B、4
• C、6
• D、3
My Answer:C:6;
16
【Single Choice】以下正确的函数首部是( ).
• A、double fun(int x,int y)
• B、double fun(int x; int y)
• C、double fun(int x;y);
• D、double fun(int x,y);
My Answer:A:double fun(int x,int y);
17
【Single Choice】以下正确的说法是( ).
• A、定义函数时,形参的类型说明可以放在函数体内
• B、return后边的值不能为表达式
• C、如果函数值的类型与返回值类型不一致,以函数值类型为准
• D、如果形参与实参类型不一致,以实参类型为准
My Answer:C:如果函数值的类型与返回值类型不一致,以函数值类型为准;
18
【Single Choice】有如下程序:long fib(int n){ if(n>2) return(fib(n-1)+fib(n-2)); else return(2); }main( ){ printf("%d\n",fib(3));}该程序的输出结果是( ).
• A、2
• B、4
• C、6
• D、8
My Answer:B:4;
19
【Single Choice】以下程序的输出结果是( ).void reverse(int a[],int n){ int i,t; for(i=0;i<n/2;i++) { t=a[i]; a[i]=a[n-1-i];a[n-1-i]=t;}}main( ){ int b[10]={1,2,3,4,5,6,7,8,9,10}; int i,s=0; reverse(b,8); for(i=6;i<10;i++)s+=b[i]; printf(" %d\n ",s);}
• A、22
• B、10
• C、34
• D、30
My Answer:C:34;
20
【Single Choice】阅读下列程序,则运行结果为( ).fun( ){ static int x=5; x++; return x;}main( ){ int i,x; for(i=0;i<3;i++) x=fun( ); printf("%d\n",x);}
• A、5
• B、6
• C、7
• D、8
My Answer:D:8;
21
【Single Choice】有以下程序int f(int n){ if(n==1)return 1; else return f(n-1)+1;}main( ){ int i,j=0; for(i=1;i<3;i++) j+=f(i); printf("%d\n",j);}程序运行后的输出结果是( ).
• A、4
• B、3
• C、2
• D、1
My Answer:B:3;
22
【Single Choice】下面函数调用语句含有实参的个数为( ).func((exp1,exp2),(exp3,exp4,exp5));
• A、1
• B、2
• C、4
• D、5
My Answer:B:2;
23
【Single Choice】阅读下面程序,则执行后的结果为( ).long fun(int n){ if(n>2) return(fun(n-1)+fun(n-2)); else return(2);}main( ){ printf("%ld\n",fun(5));}
• A、10
• B、15
• C、20
• D、以上3个答案都不正确
My Answer:A:10;
24
【Single Choice】C语言中函数调用的方式有:().
• A、只有函数调用作为语句这一种方式
• B、只有函数调用作为函数表达式这一种
• C、只有函数调用作为语句或函数表达式这两种
• D、函数调用作为语句、函数表达式或函数参数三种
My Answer:D:函数调用作为语句、函数表达式或函数参数三种;
25
【Single Choice】全局变量的定义不可能出现在( ).
• A、函数内部
• B、函数外面
• C、文件外面
• D、最后一行
My Answer:A:函数内部;
26
【Single Choice】有以下程序float fun(int x,int y){ return(x+y);}main( ){ int a=2,b=5,c=8; printf("%3.0f\n",fun((int)fun(a+c,b),a-c)); }程序运行后的输出结果是( ).
• A、编译出错
• B、9
• C、21
• D、9.0
My Answer:B:9;
27
【Single Choice】以下程序输出结果是( ).int a=50,b=10;main( ){ int a=1,c; c=a+b; printf("%d ",c); {int a=2,b=2;c=a+b; printf("%d ",c); }}
• A、60 4
• B、11 3
• C、11 4
• D、60 3
My Answer:C:11 4;
28
【Single Choice】以下错误的描述是:函数调用可以( ).
• A、出现在执行语句中
• B、出现在一个表达式中
• C、做为一个函数的实参
• D、做为一个函数的形参
My Answer:D:做为一个函数的形参;
29
【Single Choice】数组名作为函数参数传递给函数,作为实际参数的数组名被处理为( ).
• A、该数组的长度
• B、该数组的元素个数
• C、该数组中各元素的值
• D、该数组的首地址
My Answer:D:该数组的首地址;
30
【Single Choice】函数的值通过return语句返回,下面关于return语句的形式描述错误的是( ).
• A、return 表达式;
• B、return(表达式);
• C、一个return语句可以返回多个函数值
• D、一个return语句只能返回一个函数值
My Answer:C:一个return语句可以返回多个函数值;
31
【Single Choice】C语言允许函数类型缺省定义,此时函数值隐含的类型是( )。
• A、float
• B、int
• C、long
• D、double
My Answer:B:int;
32
【Single Choice】当调用函数时,实参是一个数组名,则向函数传送的是( ).
• A、数组的长度
• B、数组的首地址
• C、数组每一个元素的地址
• D、数组每个元素中的值
My Answer:B:数组的首地址;
33
【Single Choice】下面程序的输出结果为( ).fun(int a, int b){ int c; c=a+b; return c;}main( ) { int x=6,y=7,z=8,r; r=fun( (x--,y++,x+y),z--); printf("%d\n",r); }
• A、21
• B、22
• C、23
• D、20
My Answer:A:21;
34
【Single Choice】若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是( ).
• A、函数调用可以作为独立的语句存在
• B、函数调用可以作为一个函数的实参
• C、函数调用可以出现在表达式中
• D、函数调用可以作为一个函数的形参
My Answer:A:函数调用可以作为独立的语句存在;
35
【Single Choice】下列函数的运行结果是( ).main( ){ int i=2,p; int j,k; j=i; k=++i; p=f(j,k); printf("%d",p); }int f(int a,int b){ int c; if(a>b)c=1; else if(a==b)c=0; else c=-1; return(c); }
• A、-1
• B、1
• C、2
• D、编译出错,无法运行
My Answer:A
- 作者:嘻咦啊呀
- 链接:https://blog.zhcn.xyz/article/C%E8%AF%AD%E8%A8%80%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1%20%E6%B5%8B%E9%AA%8C%E9%A2%98%E5%85%AD
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。